package cn.ly.stack;

public class StackT<T> {
	
	private Object[] stackArray;
	private int maxSize;
	private int top;
	
	public StackT(int s){
		this.maxSize = s;
		stackArray = new Object[s];
		top = -1;//第一个位置，最底层应该为0，所以top+1=0，所以top为-1
	}
	
	//压入数据
	public void push(int j){
		stackArray[++top] = j;//++top才能得到0
		
	}
	//弹出数据
	public T pop(){
		return (T)stackArray[top--];//这种情况只需把top指针向下移动，不需要删除数据，效率高
	}
	//查看
	public T peek(){
		return (T)stackArray[top];
	}
	
	public boolean isEmpty(){
		return top == -1;         //这个方法效率高，代码少，漂亮的
	}
	
	public boolean isFull(){
		return top == this.maxSize-1;
	}
}
